
/* Member types */
#define MEMTYPE_STRING  1
#define MEMTYPE_INTEGER 2
#define MEMTYPE_FLOAT   3
#define MEMTYPE_TIME    4

class MemberSpec {
 public:
  MemberSpec (unsigned int memType, Expr *memLength = NULL, Expr *memName = NULL, Expr *oldMemName = NULL);
  void appendMemberSpec (MemberSpec *spec);

 private:
  unsigned int type;

  Expr *memName;
  Expr *oldMemName; /* if it redefines an old member */

  Expr *memLength; /* defines a VarCol if it was set to NULL */

  vector<MemberSpec*> members; /* for TYPE_LIST */
};
